package br.com.foxinline.manager.pesquisar;

import br.com.foxinline.modelo.AtoCampo;
import br.com.foxinline.servico.AtoCampoServico;
import br.com.foxinline.utilitario.Mensagem;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author cadomeireles
 */
@ManagedBean
@ViewScoped
public class ManagerPesquisarAtoCampo implements Serializable {
    
    @EJB
    AtoCampoServico atoCampoServico;
    
    private AtoCampo atoCampoPesquisar;
    private AtoCampo atoCampoDeletar;
    private AtoCampo atoCampoVisualizar;
    private List<AtoCampo> atoCampos;
    
    private String visualizarId;
    
    @PostConstruct
    public void init() {
        instanciar();        
        delegar();
    }
    
    private void instanciar() {
        this.atoCampoPesquisar = new AtoCampo();
        this.atoCampoDeletar = new AtoCampo();
        this.atoCampoVisualizar = new AtoCampo();
        this.atoCampos = new ArrayList<AtoCampo>();    
    }

    private void delegar() {
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.visualizarId = parametros.get("atoCampoId");        
        
        if (this.visualizarId != null) {
            this.atoCampoVisualizar = atoCampoServico.pesquisar(Long.parseLong(this.visualizarId));
        }
    }    
    
    public void pesquisar() {
        this.atoCampos = atoCampoServico.pesquisar(this.atoCampoPesquisar);
    }
    
    public void limpar() {
        instanciar();
    }
    
    public void deletar() {
        atoCampoServico.deletar(this.atoCampoDeletar);
        pesquisar();
        
        Mensagem.messagemInfo("Campo do Ato excluído com sucesso!");
    }

    public AtoCampo getAtoCampoDeletar() {
        return atoCampoDeletar;
    }

    public void setAtoCampoDeletar(AtoCampo atoCampoDeletar) {
        this.atoCampoDeletar = atoCampoDeletar;
    }

    public AtoCampo getAtoCampoPesquisar() {
        return atoCampoPesquisar;
    }

    public void setAtoCampoPesquisar(AtoCampo atoCampoPesquisar) {
        this.atoCampoPesquisar = atoCampoPesquisar;
    }

    public List<AtoCampo> getAtoCampos() {
        return atoCampos;
    }

    public void setAtoCampos(List<AtoCampo> atoCampos) {
        this.atoCampos = atoCampos;
    }

    public AtoCampo getAtoCampoVisualizar() {
        return atoCampoVisualizar;
    }

    public void setAtoCampoVisualizar(AtoCampo atoCampoVisualizar) {
        this.atoCampoVisualizar = atoCampoVisualizar;
    }

}
